home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / VGADOC4B.ZIP / CHIPS.TXT < prev    next >
Text File  |  1995-09-29  |  57KB  |  1,206 lines

  1.   Chips and Technologies Super VGA Chip Sets:
  2.  
  3.  
  4.     82c450    1M VRAM    A '453 with VRAM
  5.     82c451  256k DRAM    max 800x600 16col
  6.     82c452    1M DRAM    max 640x480 256col, 1024x768 16col
  7.     82c453    1M DRAM    max 800x600 256 col
  8.     82c455  256k DRAM    Flat Panel version
  9.     82c456  256k DRAM    do
  10.     82c457               do. Full color.
  11.     F65520   1M  D/VRAM  do. Full color. max 1280x1024 16c & 800x600 256 col
  12.     F65530   1M  D/VRAM  do. Full color. max 1280x1024 16c & 800x600 256 col
  13.                          Supports Local Bus.
  14.     F65510    LCD/CRT controller
  15.     F65525    LCD/CRT controller
  16.     F65535    LCD/CRT controller
  17.     F65540     do
  18.     F65545     do
  19.  
  20.  
  21. Wingine series:
  22.     64200   2M           Linear frame buffer
  23.     64300   2M
  24.     64310
  25.  
  26.  
  27.  94h (R/W):  Setup Control Register for Microchannel boards
  28. bit 0-2  Reserved
  29.       3  Enables Adapter VGA if set
  30.       4  Enters Setup Mode if set
  31.     5-7  Reserved
  32. Note: This is the same register as 46E8h.
  33.  
  34. 100h (R):  Microchannel ID low
  35. bit 0-7  Bit 0-7 of Microchannel Card ID
  36.  
  37. 101h (R):  Microchannel ID high
  38. bit 0-7  Bit 8-15 of Microchannel Card ID
  39.  
  40. 102h (R/W):  Global Enable
  41. bit   0  VGA is enabled if set.
  42.  
  43. 103h (R/W):  Multiple Enable
  44. bit 0-3  Multiple VGA Enable
  45.       4  Must be 0 for proper operation of 82c455/6/7.
  46.       6  Extension registers at 3B6h/7h if set, 3D6h/7h if not.
  47.       7  Extension Registers Access Enable. VGA Extension registers at 3d7h
  48.          can only be accessed if this bit is set.
  49. Note: This register only available in Setup Mode.
  50.  
  51. 104h (R):  Global ID (Setup)                                       (not 655xx)
  52. bit 0-7  Chip I/D.  0A5h if Chips and Tech Chip set.
  53. Note: this register can only be read if the chip is in setup mode (46E8h/94h
  54.       bit 4 is set)
  55.  
  56. 3C3h (R/W):  Setup Control PS/2
  57. bit   0  Enables motherboard VGA if set
  58.       4  Enters Setup mode if set
  59.  
  60. 3CAh (R):  Feature Control Register                                 (82c45x ?)
  61. bit 0-1  If 3C2h/3CCh bits 2-3 is 2, this field selects one of 4 clocks
  62. Note: This is an extension of a standard VGA register, see VGA.TXT for
  63.       other fields in this register. This register can be written at 3DAh
  64.  
  65. 3d4h index 22h (R/W):  CPU Data Latch or Color Compare from last read
  66.  
  67. 3d4h index 24h (R/W):  Attribute Controller flip/flop
  68.  
  69. 3d6h index  0  (R):  Chip Version
  70. bit 0-2  Revision number
  71.       3  Reserved for 450-457,64200,65510-65535, extra chipcode bit
  72.           for the CT64300,64310, 65540,65545
  73.     4-7  Chipcode:
  74.           0: 451  1:452  2:455  3:453  4: 450, 5:456  6:457
  75.           7: 65520, 8:65530, 9: 65510, 0Ah: 64200, 0Ch: CT65535
  76.           0Bh: CT64300 (bit 3 clear), CT64310 (bit 3 set)
  77.           0Dh: CT65540 (bit 3 clear), CT65545 (bit 3 set)
  78.  
  79. 3d6h index  1  (R):  DIP Switch Register
  80. bit 0-6  State of the DIP switches.
  81.     0-7  (655x0) Read from Memory Address bus A on Reset.
  82.          Bit 0-1: CPU Bus type
  83.                    0=PI bus, 1=MC bus, 2=Local bus (65530 only), 3=ISA bus.
  84.                2: Pixel Clock Source (OSC/)
  85.                    0: CLK0-CLK3 are pixel clock inputs.
  86.                       CLK0 or CLK1 is MCLK input.
  87.                    1: CLK0 is MCLK input.
  88.                       CLK1 is pixel clock input.
  89.                       CLK2 is CLKSEL0 output.
  90.                       CLK3 is CLKSEL1 output.
  91.                3: Memory Clock Source (56M/)
  92.                     0: MCLK = 56.644 MHz (80ns RAM)
  93.                        If bit 2 is 0:
  94.                          CLK0 is 50.350 MHz
  95.                          CLK1 is 56.644 MHz (MCLK source)
  96.                          CLK2 is 40.000 MHz
  97.                          CLK3 is 44.900 MHz
  98.                        If bit 2 is 1:
  99.                          MCLK (CLK0) is 56.644 MHz
  100.                          Clock Select 0 is 40.000 MHz
  101.                          Clock Select 1 is 50.350 MHz
  102.                          Clock Select 2 is user defined
  103.                          Clock Select 3 is 44.900 MHz
  104.                     1: MCLK = 50.350 MHz (100ns RAM)
  105.                        If bit 2 is 0:
  106.                          CLK0 is 50.350 MHz
  107.                          CLK1 is 28.322 MHz (MCLK source)
  108.                          CLK2 is 40.000 MHz
  109.                          CLK3 is 44.900 MHz
  110.                        If bit 2 is 1:
  111.                          MCLK (CLK0) is 50.350 MHz
  112.                          Clock Select 0 is 40.000 MHz
  113.                          Clock Select 1 is 28.322 MHz
  114.                          Clock Select 2 is user defined
  115.                          Clock Select 3 is 44.900 MHz
  116.                4: Transceiver Control
  117.                   If set there are no external transceivers (pin 69 is
  118.                   VGARD output), if clear there are external transceivers
  119.                   (pin 69 is ENAVEE/ output).
  120.  
  121. 3d6h index  2  (R/W):  CPU Interface
  122. bit   0  Access to video memory is 16bit if set, 8bit if clear
  123.       1  (82c450-453) I/O access is 16 bit if set, 8bit if clear
  124.          (82c453,0 Only) Fast Font Enable   ???
  125.             The byte written to memory is used as a mask
  126.             for painting foreground color to the pixels
  127.             with the corresponding bit set and background
  128.             color to the rest.
  129.          (655x0 Only) Digital Monitor Clock Mode
  130.             0: CLK0 = 25 MHz, CLK1 = 28 MHz
  131.             1: CLK0 = 14 MHz (56MHz /4 or 28MHz /2)
  132.                CLK1 = 16 MHz (50MHz /3)
  133.       2  (82c450-3,5) Fast MCA buscycle decoding if set
  134.     3-4  (82c450,3 and 455-457) Attribute port pairing
  135.             0: Normal Attribute addressing
  136.             1: 3C1h is both read and write, 8 and 16 bit.
  137.             2: 3C1h is both read and write, 8 bit only.
  138.       5  (Not 82c451/2) 10 bit I/O decoding if set, 16 bit else
  139.       6  (82c450,3 Only) Pel Panning Control
  140.          (655x0 Only) If set external palette registers can be addressed
  141.              at 83C6h-83C9h, Ie A15 is connected to RS2 on the DAC.
  142.       7  (R) Attribute flip-flop status. If set the Attribute register (3C0h)
  143.              is currently in Data mode.
  144.  
  145. 3d6h index  3  (R/W):  ROM Interface                               (not 655x0)
  146. bit   0  Disable on-card ROM if set.
  147.          Enable ROM at C0000h-C7FFFh if clear.
  148.  
  149. 3d6h index  4  (R/W):  Memory Mapping
  150. bit 0-1  (82c452/3/) Display Memory Size:  0: 256Kb, 1: 512Kb, 2: 1Mb.
  151.          (655xx) Memory Configuration
  152.                   0: 2 x 256Kx4 D/VRAM  256K tot   8 bit datapath
  153.                      (6554x) 1Mb ??
  154.                   1: 4 x 256Kx4 D/VRAM  512K tot  16 bit datapath
  155.                   2: (6554x) 1Mb
  156.                   3: 2 x 512Kx8   DRAM    1M tot  16 bit datapath
  157.          (643xx) Display Memory Size:  0: 256Kb, 1: 512Kb,
  158.                   2: 1Mb/2Mb (depending on index Fh bits 0-1).
  159.       2  (82c451/5/6/7) Enable bank access if set
  160.          (82c452/3, 655x0) If set CRTC Address can cross bank boundaries.
  161.       3  (82c457) If set DRAM timing is for 64Kx16 (4 WE, 1 CAS)
  162.                   if clear for 64Kx4 (4 CAS, 1 WE).
  163.          (655x0)  Enables bank addressing if set.
  164.       4  (655x0)  If set VRAM interface, else DRAM interface.
  165.       5  (655x0)  If set CPU memory write buffer is enabled.
  166.       6  (655x0)  If set enables 0WS capability.
  167.       7  (655x0)  If set allows faster 0WS cycle timing.
  168.  
  169. 3d6h index  5h (R/W):  Sequencer Control                        (452/3/7 only)
  170. bit   2  (82c457)  Clock Pin Polarity.
  171.                    If set CLK0 is defined as a common clock and CLK1/S0
  172.                    and CLK2/S1 are select outputs. If clear one of CLK0,
  173.                    CLK1 and CLK2 is selected as the display clock.
  174.  
  175. 3d6h index  6h (R/W):  DRAM Interface                            (82c452 only)
  176.  
  177. 3d6h index  6h (R/W):  Palette Control Register             (64300,655x0 only)
  178. bit   0  If set enables external DAC if 3d6h index 6 bit 0 is 0.
  179.       1  If set disables the internal DAC.
  180.          Causes the DAC to power down and tri-states the outputs.
  181.       2  (655x0) If set enables 16 bit/pixel operation.
  182.          Timing to an external DAC will be SC11486 (Tseng) compatible.
  183.          (Two bytes output per pixel, one on the rising edge of PCLK
  184.          and one on the falling edge).
  185.       3  (655x0) If set 16 bit pixels are 5 red-6 green-5 blue.
  186.          If clear they are 5 bits of each.
  187.     2-3  (64300) DAC mode. 0: Palette, 1: 15bit, 2: 24bit, 3: 16bit
  188.       4  If set the Sense Status bit (3C2h bit 4) is driven by the SENSE
  189.          pin from external logic.
  190.       5  If set bypasses the internal RAMDAC.
  191.          This bit should always be clear.
  192.     6-7  Color Reduction Select.
  193.          In flat panel modes these bits determine the algorithm used to
  194.          reduce 18 bit color data to 6 bits for mono panels.
  195.           0: NTSC weighting, 1: Equivalent weight, 2: Green only, 3: Color.
  196.  
  197. 3d6h index  8h (R/W):  General Purpose Output Select B Register.
  198.                                                             (451/2/5/6/7 only)
  199. bit   0  Select bit B for ERMIN/ pin.
  200.       1  Select bit B for TRAP/ pin.
  201.       2  (82c457) If set PNL14 pin outputs panel data bit 14,
  202.          if clear PNL14 pin outputs DATEN/.
  203.  
  204. 3d6h index 08h W(R/W):                                           (64300,65535)
  205. bit 0-7  (64300) Low bits of the Linear Frame buffer address ?
  206.    8-15  (64300) Linear Frame buffer address bits 24-31.
  207.    3-14  (65535) Linear Frame Buffer address bits 20-31.
  208.     0-?  (6554x) Linear Frame Buffer address bits 20-
  209.  
  210. 3d6h index  9h (R/W):  General Purpose Output Select A Register.
  211.                                                             (451/2/5/6/7 only)
  212. bit   0  Select bit A for ERMIN/ pin.
  213.       1  Select bit A for TRAP/ pin.
  214.          Select A and B determine the output on the pin:
  215.            B      A        Output
  216.          clear  clear      Normal
  217.          clear   set       3-State
  218.           set   clear      Force low
  219.           set    set       Force high
  220.  
  221. 3d6h index 0Ah (R/W):  Cursor Address Top                      (82c452/3 Only)
  222. bit 0-1  Cursor Address bit 16,17
  223.     2-7  Reserved
  224.  
  225. 3d6h index 0Bh (R/W):  CPU Paging                          (82c451/5/6/7 only)
  226. bit 0-1  Bank number in 64k chunks.
  227. Note: This Bank register is used if in a 256 color mode and the chip is a
  228.       82c451/5/6/7.
  229.  
  230. 3d6h index 0Bh (R/W):  Memory Paging Register           (82c452/3, 655x0 only)
  231. bit   0  Enable extended paging (256 color paging) if set
  232.       1  If set Dual Pages are enabled. A0000h-A7FFFh uses 3d6h
  233.          index 10h, A8000h-AFFFFh uses 3d6h index 11h.
  234.       2  CPU Address divide by 4 (256 color addressing)
  235.       3  (655x0) If set CPU address divide by 2 is enabled.
  236.       4  (65530) If set Memory is mapped as 1MB linear Memory.
  237.     4-5  (64300) Set to 3 to enable Linear Frame buffer, 0 to disable
  238.  
  239. 3d6h index 0Ch (R/W):  Start Address Top          (82c452/3, 64300,655x0 Only)
  240. bit 0-1  (655xx) Display Start Address bit 16-17.
  241.     0-2  (64300) Display Start Address bit 16-18.
  242.       4  (64300) Bit 8 of the Single/Low bank register. Bits 0-7 are in 3d6h
  243.             index 10h
  244.  
  245. 3d6h index 0Dh (R/W):  Auxiliary Offset Register
  246. bit   0  Bit 8 of Offset field. If set each line is >255 words.
  247.       1  Bit 8 of simulated Offset field.
  248.       2  (643xx) CRTC Offset bit 8. Bits 0-7 are in 3d4h index 13h
  249.  
  250. 3d6h index 0Eh (R/W):  Text Mode                          (82c452, 655x0 Only)
  251. bit   0  (82c452) Extended text Mode Control ??
  252.       1  (82c452) Enable anti-aliased fonts if set
  253.       2  (655x0)  If set cursor is non-blinking.
  254.       3  (655x0)  If set Cursor style is Exclusive-Or.
  255.  
  256. 3d6h index 0Fh (R/W):  Software Flags 2                     (643xx,655xx only)
  257. bit 0-7  Software flags.
  258.     0-1  (643xx) Video RAM. 0: 256K, 1: 512K, 2: 1MB, 3: 2MB
  259.  
  260. 3d6h index 10h (R/W):  Single/Low Map                   (82c452/3, 6xxxx Only)
  261. bit 0-5  (82c452) Bank no in 4K/16K chunks.
  262.     0-7  (82c453,64300) Bank no in 1K/4K chunks.
  263. Note: This Bank register is used if in single-paging mode or if addressing the
  264.       lower half (32 or 64Kb) of the adapters address range.
  265.  
  266. 3d6h index 11h (R/W):  High Map                         (82c452/3, 655x0 Only)
  267. bit 0-5  (82c452) Bank no in 4K/16K chunks.
  268.     0-7  (82c453) Bank no in 1K/4K chunks.
  269. Note: This Bank register is used if addressing the upper half (32 or 64Kb) of
  270.       the adapters address range.
  271.  
  272. 3d6h index 14h (R/W):  Emulation Mode Register
  273. bit 0-1  Emulation Mode:
  274.           0=VGA/EGA, 1=CGA, 2=MDA and 3=Hercules.
  275.       2  (R) Hercules Configuration (3BFh) bit 0 Readback.
  276.          If set it is possible to set the Graphics Mode bit (3B8h bit 1).
  277.       3  (R) Hercules Configuration (3BFh) bit 1 Readback.
  278.          If set it is possible to set the Graphics Page bit (3B8h bit 7).
  279.       4  Display Enable Status Mode.
  280.          If set bit 0 of the Input Status Register 1 (3dAh)
  281.          shows the Hsync Status (as MDA/Hercules), if clear the
  282.          Display Enable is shown (as CGA/VGA).
  283.       5  Vertical Retrace Status Mode.
  284.          If set bit 3 of the Input Status Register 1 (3dAh)
  285.          shows the Video signal (as MDA/Hercules), if clear the
  286.          Vertical Retrace status is shown (as CGA/VGA).
  287.       6  Vsync Status Mode.
  288.          If clear bit 7 of the Input Status Register 1 (3dAh)
  289.          shows the Vsync Status (as MDA/Hercules).
  290.       7  Interrupt Output Function.
  291.          If clear the IRQ pin will always 3-state, if set it
  292.          will 3-state only when interrupts are disabled.
  293.  
  294. 3d6h index 15h (R/W):  Write Protect Register.
  295. bit   0  Write Protect Group 1 Registers.
  296.          If set the Sequencer (3C4h), Graphics Controller (3CEh)
  297.          and Attribute Controller (3C0h) registers are write protected.
  298.       1  Write Protect Group 2 Registers.
  299.          If set the Cursor Size Register (3d4h index 9 bits 0-4)
  300.          and the Character Height registers (3d4h index 0Ah and 0Bh)
  301.          are write protected.
  302.       2  Write Protect Group 3 Registers.
  303.          If set CRT registers (3d4h) index: 7 bit 4, 8, 11h bits 4-5,
  304.          13h, 14h, 17h bits 0-1 and 3-7, 18h are write protected.
  305.       3  Write Protect Group 4 Registers.
  306.          If set CRT registers (3d4h) index: 9 bits 5-7, 10h, 11h bits 0-3
  307.          and 6-7, 12h, 15h, 16h, 17h bit 2 are write protected.
  308.       4  Write Protect Group 5 Register.
  309.          If set the Miscellaneous Output (3C2h) and Feature Control
  310.          (3dAh) registers are write protected.
  311.       5  Write Protect Group 6 Registers.
  312.          If set the DAC registers (3C6h-3C9h) are write protected.
  313.       6  Write Protect Group 0 Registers.
  314.          If set CRT registers (3d4h) index: 0, 1, 2, 3, 4, 5, 6,
  315.          7 bits 0-3 and 5-7 are write protected.
  316.  
  317. 3d6h index 16h (R/W):  Trap Enable Register.                       (not 655x0)
  318. bit   0  If set accesses to registers 3B4h or 3B5h cause a Trap.
  319.       1  If set accesses to registers 3B8h or 3BFh cause a Trap.
  320.       2  If set accesses to registers 3C0h-3CFh cause a Trap.
  321.       3  If set accesses to registers 3D4h or 3D5h cause a Trap.
  322.       4  If set accesses to registers 3D8h or 3D9h cause a Trap.
  323.       5  If set accesses to registers 3d4h index 0-0Bh and 10h-18h
  324.          cause a Trap.
  325.  
  326. 3d6h index 17h (R/W):  Trap Status Register.                 (not 64300,655x0)
  327. bit   0  If set a trap occurred due to access to registers 3B4h or 3B5h.
  328.       1  If set a trap occurred due to access to registers 3B8h or 3BFh.
  329.       2  If set a trap occurred due to access to registers 3C0h-3CFh.
  330.       3  If set a trap occurred due to access to registers 3D4h or 3D5h.
  331.       4  If set a trap occurred due to access to registers 3D8h or 3D9h.
  332.       5  If set a trap occurred due to access to registers
  333.          3d4h index 0-0Bh or 10h-18h.
  334. Note: Any bits in this register can be cleared by writing a 1 bit to them.
  335.  
  336. 3d6h index 17h (R/W):                                                  (64300)
  337. bit   0  Bit 8 of the Horizontal Total. Bits 0-7 are in 3d4h index 0.
  338.  
  339. 3d6h index 18h (R/W):  Alternate Horizontal Display Enable End Register
  340. bit 0-7  This register replaces the Horizontal Display Enable End Register
  341.          (3d4h index 1) in low resolution CGA text and graphics modes,
  342.          Hercules Graphics and all flat panel modes.
  343. Note: Probably doesn't exist in the 82c451/2/3.
  344.  
  345. 3d6h index 19h (R/W):  Alternate Horizontal Sync Start Register
  346. bit 0-7  This register replaces the Horizontal Sync Start Register (3d4h index
  347.           4) in low resolution CGA text and graphics modes, Hercules Graphics
  348.          and all flat panel modes.
  349. Note: Probably doesn't exist in the 82c451/2/3.
  350.  
  351. 3d6h index 1Ah (R/W):  Alternate Horizontal Sync End Register
  352. bit 0-4  Alternate Horizontal Sync End. Replaces 3d4h index 5 bits 0-4.
  353.     5-7  Alternate Horizontal Sync Delay.
  354.          For CRTs replaces 3d4h index 5 bits 5-6.
  355. Note: This register replaces the Horizontal Sync End Register (3d4h index 5)
  356.       in low resolution CGA text and graphics modes, Hercules Graphics and
  357.       all flat panel modes.
  358. Note: Probably doesn't exist in the 82c451/2/3.
  359.  
  360. 3d6h index 1Bh (R/W):  Alternate Horizontal Total Register
  361. bit 0-7  This register replaces the Horizontal Total Register
  362.          (3d4h index 0) in low resolution CGA text and graphics modes,
  363.          Hercules Graphics and all flat panel modes.
  364. Note: Probably doesn't exist in the 82c451/2/3.
  365.  
  366. 3d6h index 1Ch (R/W):  Alternate Horizontal Blank Start Register         (CRT)
  367. bit 0-7  Alternate Horizontal Blank Start.
  368. Note: For CRT systems this register replaces the Horizontal Blank Start
  369.       Register (3d4h index 2) in low resolution CGA text and graphics
  370.       modes and Hercules Graphics mode.
  371. Note: Probably doesn't exist in the 82c451/2/3.
  372. Note: This register has different meaning for CRT and Plat Panel systems.
  373.  
  374. 3d6h index 1Ch (R/W):  Alternate Horizontal Blank End Register    (Flat Panel)
  375. bit 0-7  For Flat Panel systems this value specifies the end of Horizontal
  376.          Blank in terms of character clocks.
  377. Note: Probably doesn't exist in the 82c451/2/3.
  378. Note: This register has different meaning for CRT and Plat Panel systems.
  379.  
  380. 3d6h index 1Dh (R/W):  Alternate Horizontal Blank End Register           (CRT)
  381. bit 0-4  Alternate Horizontal Blank End
  382.     5-6  Alternate Display Enable Skew Control.
  383. Note: For CRT systems this register replaces the Horizontal Blank End
  384.       Register (3d4h index 3) in low resolution CGA text and graphics
  385.       modes, and Hercules Graphics mode.
  386. Note: Probably doesn't exist in the 82c451/2/3.
  387. Note: This register has different meaning for CRT and Plat Panel systems.
  388.  
  389. 3d6h index 1Dh (R/W):  Alternate Horizontal Blank Start Register (Flat Panel)
  390. bit 0-7  Alternate Horizontal Blank Start.
  391. Note: For Flat Panel systems this register replaces the Horizontal Blank
  392.       Start Register (3d4h index 2).
  393. Note: Probably doesn't exist in the 82c451/2/3.
  394. Note: This register has different meaning for CRT and Plat Panel systems.
  395.  
  396. 3d6h index 1Eh (R/W):  Alternate Offset Register
  397. bit 0-7  Alternate Offset.
  398. Note: This register replaces the Offset Register (3d4h index 13h) in low
  399.       resolution CGA text and graphics modes and Hercules Graphics mode.
  400. Note: Probably doesn't exist in the 82c451/2/3.
  401.  
  402. 3d6h index 1Fh (R/W):  Virtual EGA Switch Register                (655x0 only)
  403. bit 0-3  If bit 7 is 1 one of these bits is read back in the Input Status
  404.          Register 0 (3C2h bit 4) depending on Miscellaneous Output bits 2-3:
  405.           0: bit 3, 1: bit 2, 2: bit 1, 3:bit 0.
  406.       7  If set one of bits 0-3 is read back in the Input Status Register
  407.          (3C2h) bit 4.
  408.  
  409. 3d6h index 20h (R/W):  Sliding Unit Delay                         (452/3 only)
  410.  
  411. 3d6h index 21h (R/W):  Sliding Hold A                               (452 only)
  412.  
  413. 3d6h index 22h (R/W):  Sliding Hold B                               (452 only)
  414.  
  415. 3d6h index 23h (R/W):  Write Mask Control                         (452/3 Only)
  416. bit   0  Enable VRAM Write Mask function if set
  417.     1-2  Write Bit Mask Select:
  418.           0: Write Bit Mask Pattern Register (3d6h index 24h)
  419.           1: Graphics Controller Bit Mask    (3CEh index 8)
  420.           2: Rotated CPU byte
  421.       3  Enable Fast Read/Modify/Write function if set
  422.  
  423. 3d6h index 24h (R/W):  Write Bit Mask Pattern                  (82c452/3 only)
  424. bit 0-7  Write Bit Mask (if 3d6h index 23h bit 1-2 =0)
  425.  
  426. 3d6h index 24h (R/W):  Alternate Maximum Scanline Register        (655x0 only)
  427. bit 0-4  Number of scanlines -1 per character row of TallFont.
  428. Note: Used in Flat Panel text modes when TallFont is enabled.
  429.  
  430. 3d6h index 25h (R/W):  FP AltGrHVirtPanel Size               (453, 655x0 only)
  431. bit 0-7  Should be: (9/8)*(3d6h index 1Ch +1) -1.
  432.  
  433. 3d6h index 26h (R/W):  Configuration                             (82c453 Only)
  434. bit   0  PC/AT if set, PS/2 if not
  435.     1-2  VRAM memory
  436.           0: 512k   16 chips of  64k x4
  437.           1: 512k    4 chips of 256k x4
  438.           2:   1M    8 chips of 256k x4
  439.           3: 512k    8 chips of  64k x4  ?????  maybe 256k ??
  440.  
  441. 3d6h index 27h (R/W):  Force Sync State
  442.  
  443. 3d6h index 28h (R/W):  Video Interface
  444. bit   0  BLANK/Display Enable Polarity.
  445.          Positive if set, Negative if clear.
  446.       1  Blank /Display Enable Select (CRT).
  447.          If set the BLANK/ pin outputs DE, if clear BLANK/
  448.       2  Shut Off Video.
  449.          If set the video signal is forced to default video
  450.          (3d6h index 2bh) during the blanking interval.
  451.       3  Shut Off Blank.
  452.          If set the BLANK/ output is forced active
  453.          during the blanking interval.
  454.          (655x0)  Read/writable, but has no function.
  455.       4  (655x0)  256 Color Video Path.
  456.            If set Video Data Path is 8 bits rather than 4 bits.
  457.          (64300)  Set in 256c or Hi/Truecolor modes, clear all other modes
  458.       5  (655x0)  Interlace Video. CRT graphics modes only.
  459.          If set Video is interlaced.
  460.       6  (655x0)  8-bit Video Pixel Panning.
  461.          If set 3C0h index 13h bits 0-2 are used to control
  462.          pixel panning rather than bits 1-2.
  463.       7  (655x0)  Read/writable, but has no function.
  464.  
  465. 3d6h index 29h (R/W):  External Sync Control                        (452 only)
  466.  
  467. 3d6h index 2Ah (R/W):  Frame Interrupt Count                        (452 Only)
  468. bit 0-4  Generate Vertical Interrupt every (n+1) frames
  469.  
  470. 3d6h index 2Bh (R/W):  Default Video Register                        (not 453)
  471. bit 0-7  On CRTs this is the color displayed during blank time.
  472.  
  473. 3d6h index 2Ch (R/W):  FP Vsync (FLM) Delay Register.
  474. bit 0-7  Number of Hsync pulses between internal Vsync and the
  475.          rising edge of First Line Marker (FLM).
  476. Note: Only used in Flat Panel modes when 3d6h index 2Fh bit 7 is 0..
  477.  
  478. 3d6h index 2Dh (R/W):  FP Hsync (LP) Delay Register.
  479. bit 0-7  Number of character clocks between the FP Blank inactive
  480.          edge and the rising edge of the LP.
  481. Note: Only used in Flat Panel modes when 3d6h index 2Fh bit 6 is 0 and
  482.       graphics mode horizontal compression is disabled.
  483.  
  484. 3d6h index 2Eh (R/W):  FP Hsync (LP) Delay Register.
  485. bit 0-7  Number of character clocks between the FP Blank inactive
  486.          edge and the rising edge of the LP.
  487. Note: Only used in Flat Panel modes when 3d6h index 2Fh bit 6 is 0
  488.       and 9 dot text mode is used.
  489.  
  490. 3d6h index 2Fh (R/W):  FP Hsync (LP) Width Register
  491. bit 0-3  Width of the LP output pulse in number of character clocks.
  492.          Only in 8 dot text modes on Flat Panels.
  493.       4  Bit 8 of the FP Hsync (LP) Delay Register (3d6h index 2Eh).
  494.       5  Bit 8 of the FP Hsync (LP) Delay Register (3d6h index 2Dh).
  495.       6  FP Hsync (LP) Delay Disable.
  496.          If set the FP Hsync (LP) active edge will coincide with the
  497.          FP Blank inactive edge.
  498.       7  FP Vsync (FLM) Delay Disable.
  499.          If set the external FP Vsync (FLM) will coincide with
  500.          the internal FP Vsync (FLM) active edge.
  501.  
  502. 3d6h index 30h (R/W):  Graphics Cursor Start Address High           (452 only)
  503. bit 0-7  Bit 8-15 of the Cursor Start Address.
  504.  
  505. 3d6h index 31h (R/W):  Graphics Cursor Start Address Low            (452 only)
  506. bit 0-7  Lowest 8 bits of the Cursor Start address. 3d6h index 30h and index
  507.          Ah forms the upper 10 bits. In 256 color modes this address has a
  508.          granularity of 16 bytes and 4 bytes in 16 color modes.
  509.  
  510. 3d6h index 31h (R/W):  Clock Numerator                                 (64300)
  511. bit 0-6  If 3C2h/3CCh bits 2-3 is 2 or 3 the clock is determined by this and
  512.          the next index. Clock = 2*RefClk*(index 31h +a)/(index 32h +b).
  513.          RefClk is normally 14.18318. a and b are small constants that must be
  514.          added. For now I use 2 for both.
  515.  
  516. 3d6h index 32h (R/W):  Graphics Cursor End Address                  (452 only)
  517. bit 0-7  End address of the cursor bit map.
  518.  
  519. 3d6h index 32h (R/W):  Clock Denominator                               (64300)
  520. bit 0-6  See index 31h for details.
  521.  
  522. 3d6h index 33h (R/W):  Graphics Cursor X Position High              (452 only)
  523. bit 0-3  Bits 8-11 of the X co-ordinate of the cursor.
  524.  
  525. 3d6h index 34h (R/W):  Graphics Cursor X Position Low               (452 only)
  526. bit 0-7  Lower 8 bits of the X co-ordinate of the cursor.
  527.  
  528. 3d6h index 35h (R/W):  Graphics Cursor Y Position High              (452 only)
  529. bit 0-3  Bits 8-11 of the Y co-ordinate of the cursor.
  530.  
  531. 3d6h index 36h (R/W):  Graphics Cursor Y Position Low
  532. bit 0-7  Lower 8 bits of the cursor Y co-ordinate.
  533.  
  534. 3d6h index 37h (R/W):  Graphics Cursor Mode                         (452 only)
  535. bit   0  Cursor Enabled if set
  536.       1  Cursor Status enable
  537.       2  Horizontal Zoom. Zoom to 64 pixels wide if set.
  538.          (Normally 32 pixels wide).
  539.       3  Cursor Blink enabled if set
  540.       4  Cursor Blink Rate. 8 frames if clear, 16 if set
  541.  
  542. 3d6h index 38h (R/W):  Graphics Cursor Plane Mask                   (452 only)
  543. bit   0  Enables graphics cursor in bit plane 0 if set
  544.       1  Enables graphics cursor in bit plane 1 if set
  545.       2  Enables graphics cursor in bit plane 2 if set
  546.       3  Enables graphics cursor in bit plane 3 if set
  547.  
  548. 3d6h index 39h (R/W):  Graphics Cursor Color 0                      (452 only)
  549. bit 0-7  Background color of Graphics Cursor.
  550.  
  551. 3d6h index 3Ah (R/W):  Graphics Cursor Color 1                      (452 only)
  552. bit 0-7  Foreground color of Graphics Cursor.
  553.  
  554. 3d6h index 44h (R/W):  Scratch #0 Register                (82c453, 655x0 Only)
  555. bit 0-7  Available
  556.  
  557. 3d6h index 45h (R/W):  Scratch #1/Foreground Color               (82c453 Only)
  558. bit 0-7  Used as foreground color if in Fast Font Paint mode,
  559.          Available as scratch if not.
  560.  
  561. 3d6h index 50h (R/W):  Panel Format                          (82c455/6/7 Only)
  562. bit 0-1  Frame Rate Control
  563.           0: No grey scale simulated for mono,
  564.              8 colors simulated for color panels.
  565.           1: 4 simulated colors for color panels only
  566.              (64 colors displayed).
  567.           2: (82c455/6) 64 grey levels simulated for mono. panels only.
  568.              (82c457)   16 levels simulated for each color output.
  569.                         4096 colors simulated.
  570.           3: (82c457)   3 levels simulated for each color output.
  571.                         27 colors simulated.
  572.     2-3  Pulse Width Modulation
  573.           0: No grey scales for mono or color systems.
  574.           1: 4 colors supported by the color panels only
  575.              (64 colors displayed).
  576.           2: 16 grey levels supported by the mono panels only.
  577.           3: 256 grey levels supported by the color single panels only.
  578.              (655x0) Dither Enable.
  579.                0: Disable Dither.
  580.                1: Enable dither for 256 color modes.
  581.                2: Enable dither for all modes.
  582.     4-5  Clock Divide (CD).
  583.           0: Shift Clock = Dot Clock
  584.           1: Shift Clock = Dot Clock/2
  585.           2: Shift Clock = Dot Clock/4
  586.           3: (655x0) Shift Clock = Dot Clock/8.
  587.       7  Shift Clock Mask.
  588.          If set the Shift Clock stops outside the Display Enable interval.
  589.     6-7  (655x0)  VAM/FRC Control
  590.            0: bit 2-3 determine the dither:
  591.                0: 6 bpp VAM (dither bits 0-1).
  592.                1: 4 bpp VAM (dither bits 0-1).
  593.                2: 2 bpp VAM (dither bits 2-3).
  594.                3: 1 bpp VAM (dither bits 4-5).
  595.            1: 3 Bits/Pixel VAM (dither bits 1-2).
  596.               Use with bit 2-3=0 or 1 for mono panels,
  597.               Use with bit 2-3=0 for color panels.
  598.            2: (65530) 2-Frame FRC
  599.               3 level grey scale simulation without dither or
  600.               9 level grey scale simulation with dither.
  601.            3: (65530) 3 Bits/Pixel VAM + 2-Frame FRC.
  602.               15-level grey scale simulation without dithering and
  603.               56 level grey scale simulation with dithering.
  604.  
  605. 3d6h index 51h (R/W):  Panel Type                     (82c455/6/7, 655x0 Only)
  606. bit   0  (82c455/6) Double drive if set, single else
  607.       1  Double panel if set, single else
  608.     2-3  (82c455-7) Type of display
  609.           0=LCD, 1=CRT, 2=Plasma or Electroluminescent.
  610.       2  (655x0) Display Type. 0=CRT, 1=Flat Panel.
  611.       3  (655x0) 8/16 bit FP Video Interface.
  612.          If set the Flat Panel Video interface is 16 bit.
  613.     4-5   0=Color panel 3 bit data pack
  614.           1=Color Panel 1 bit data pack
  615.           2=(82c455/6) Monochrome Panel
  616.           3=(82c457)   Extended 4-bit pack
  617.       4  (655x0) Video Skew.
  618.          If set Video data is delayed 1 shift clock cycle.
  619.       5  (655x0) Shift Clock Mask (SM). Flat Panel mode only.
  620.          If set the shift clock is forced low outside the display
  621.          interval. If clear it also toggles outside the interval.
  622.       6  Flat Panel Compatibility enabled if set
  623.       7  Text Video output polarity
  624.  
  625. 3d6h index 52h (R/W):  Panel Size                            (82c455/6/7 Only)
  626. bit 0-1  Horizontal Size of panel
  627.           1=640 pixels, 2=720 pixels
  628.     3-6  Vertical Size of panel
  629.           1=200 lines, 2=350, 4=400, 8=480 lines
  630.  
  631. 3d6h index 52h (R/W):  Power Down Control Register.               (655x0 only)
  632. bit 0-2  FP Normal Refresh Count. Flat Panel modes only.
  633.          Number of memory refresh cycles to perform per scanline.
  634.       3  Panel Off Mode. If set the CRT/FP interface is inactive.
  635.       4  Panel Off Control Bit 0. Only effective if bit 3 is set.
  636.          If set the Video data, CRT and Flat Panel timing signals
  637.          are forced inactive, rather than only the Video data.
  638.       5  Panel Off Control bit 1. Only effective if bit 3 is set.
  639.          If set inactive video data and/or timing pins are tri-stated
  640.          rather than being driven.
  641.       6  Standby Control. Only effective if the STNDBY/ is low.
  642.          In standby mode the video output, timings and CPU interface
  643.          are inactive. If set the Display memory refresh is derived
  644.          from the 32kHz input. If clear the DRAMs are self-refreshed.
  645.       7  CRT Mode Panel Off. Only effective in CRT modes.
  646.          If set Video data and timing signals are tri-stated.
  647.  
  648. 3d6h index 53h (R/W):  Override Register              (82c455/6/7, 655x0 Only)
  649. bit   0  Disable AR10D2. If set the ninth pixel of characters is
  650.          controlled by this register, if clear it is controlled
  651.          by the Mode Control Register (3C0h index 10h) bit 2.
  652.       1  Alternate Line Graphics Character Code.
  653.          Only effective if bit 0 is set.
  654.          If set the ninth pixel of a character is forced to the same value
  655.          as the 8th pixel. If clear it is forced to the background color.
  656.       2  (655x0) FRC option 1.
  657.       3  (655x0) FRC option 2.
  658.     4-5  (65530) Pixel Packing. Only effective for Color STN panels.
  659.             0: 3-bit Pack. 3d6h index 50h bits 4-5 can be 0,1 or 2.
  660.             1: 4-bit Pack. 3d6h index 50h bits 4-5 can be 1 or 1.
  661.             3: Extended 4-bit Pack. 3d6h index 50h bits 4-5 must be 1.
  662.       7  (65530) High Color Mode Flat Panel Operation.
  663.          If set Hi-Color operation is enabled in hi-res modes on
  664.          Flat panel. If clear it is enabled in low-res modes.
  665.  
  666. 3d6h index 54h (R/W):  Alternate Miscellaneous Output Register
  667.                                                              (82c455/6/7 Only)
  668. bit   0  Panel Video Skew
  669.     2-3  Clock Select Bits
  670.       6  Hsync. Negative if set, Positive if clear.
  671.       7  Vsync. Negative if set, Positive if clear.
  672. Note: For Flat Panel systems this register replaces the Miscellaneous
  673.       Output Register (3C2h).
  674.  
  675. 3d6h index 54h (R/W):  FP Interface Register                      (655x0 Only)
  676. bit   0  FP Blank Polarity.
  677.          If set the BLANK/ pin has negative polarity.
  678.       1  If set the BLANK/ pin outputs only the FP Horizontal Blank
  679.          signal, if clear it outputs both Vertical and Horizontal
  680.          Blank signals.
  681.     2-3  FP Clock Select Bits 0-1.
  682.          In Flat Panel modes these bits replace 3C2h bits 2-3.
  683.     4-5  FP Feature Control bits 0-1.
  684.          In Flat Panel modes these bits replace 3dAh bits 0-1.
  685.       6  FP HSync (LP) Polarity.
  686.          If set the HSync (LP) pin has negative polarity.
  687.       7  FP VSync (FLM) Polarity.
  688.          If set the Vsync (FLM) pin has negative polarity.
  689. Note: This register is only effective in Flat Panel modes.
  690.  
  691. 3d6h index 55h (R/W):  Text Mode 350_A                       (82c455/6/7 Only)
  692. bit 0-3  (Number of blank lines)-1 inserted between text rows
  693.          I.e.  if 5, insert 6 blank lines after a text line.
  694.       4  If clear lines are inserted.
  695. Note: This register is used if in a 350 line text mode
  696.       and fonts are larger than 8 lines.
  697.  
  698. 3d6h index 55h (R/W):  Horizontal Compensation Register           (655x0 Only)
  699. bit   0  Enable Horizontal Compensation (EHCP)
  700.          If set Horizontal compensation is enabled.
  701.       1  Enable Automatic Horizontal Centering (EAHC)
  702.          If set (and bit 0 is set) EAHC is enabled.
  703.          Horizontal left and right borders will be computed
  704.          automatically.
  705.       2  Enable Text Mode Horizontal Compression (ETHC).
  706.          If set, bit 0 is set and we are in a Flat Panel Text
  707.          mode ETHC is enabled.
  708.          9-dot text modes will be forced to 8-bit.
  709.       5  Enable Automatic Horizontal Doubling (EAHD).
  710.          If set and bit 0 is set, EAHD is enabled.
  711.          If Horizontal Display Width (3d4h index 1) is less
  712.          than or equal to half the Horizontal Panel Size
  713.          (3d6h index 18h) horizontal pixel doubling will be forced.
  714.       6  Alternate CRT Hsync Polarity. Negative if set, Positive if clear.
  715.       7  Alternate CRT Vsync Polarity. Negative if set, Positive if clear.
  716.  
  717. 3d6h index 56h (R/W):  Text Mode 350_B                       (82c455/6/7 Only)
  718. bit 0-3  (Number of blank lines)-1 inserted between text rows
  719.       4  If clear lines are inserted.
  720. Note: This register is used if in a 350 line text mode
  721.       and fonts are smaller than or equal to 8 lines.
  722.  
  723. 3d6h index 56h (R/W):  Horizontal Centering Register              (655x0 Only)
  724. bit 0-7  Horizontal Left Border. Size of the left border in pixels  -1.
  725.          Only used if in a Flat Panel mode and non-automatic
  726.          horizontal centering is enabled.
  727.  
  728. 3d6h index 57h (R/W):  Text Mode 400                         (82c455/6/7 Only)
  729. bit 0-3  (Number of blank lines)-1 inserted between text rows
  730.       4  If clear lines are inserted.
  731. Note: This register is used if in a 400 line text mode.
  732.  
  733. 3d6h index 57h (R/W):  Vertical Compensation Register             (655x0 Only)
  734. bit   0  Enable Vertical Compensation if set.
  735.       1  Enable Automatic Vertical Centering. If set and bit 0 set, the image
  736.          will automatically be centered vertically.
  737.       2  Enable Text Mode Vertical Stretching.
  738.          If set and bit 0 set, text mode vertical
  739.          stretching is enabled.
  740.     3-4  Text Mode Vertical Stretching. If bit 0 & 2 set.
  741.            0 = Double Scanning (DS) and Line Insertion (LI)
  742.                with priority: DS+li, DS, LI.
  743.            1 = Double Scanning (DS) and Line Insertion (LI)
  744.                with priority: DS+LI, LI, DS.
  745.            2 = Double Scanning (DS) and TallFont (TF)
  746.                with priority: DS+TF, DS, TF.
  747.            3 = Double Scanning (DS) and TallFont (TF)
  748.                with priority: DS+TF, TF, DS.
  749.       5  Enable Vertical Stretching if set and bit 0 set.
  750.       6  Vertical Stretching. If bits 0 and 5 set.
  751.            0 = Double Scanning (DS) and Line Replication (LR)
  752.                with priority: DS+LR, DS, LR.
  753.            1 = Double Scanning (DS) and Line Replication (LR)
  754.                with priority: DS+LR, LR, DS.
  755.  
  756. 3d6h index 58h (R/W):  Graphics Mode 350                     (82c455/6/7 Only)
  757. bit 0-3  Number of scan lines between stretch/delete
  758.       4  Enable vertical Stretching if set
  759.       5  Enable vertical deletion if set
  760.       6  If set the value in bits 0-3 is incremented every other period.
  761. Note: This register is used if in a 350 line graphics mode.
  762.  
  763. 3d6h index 58h (R/W):  Vertical Centering Register                (655x0 Only)
  764. bit 0-7  Vertical Top Border LSBs.
  765.          Lower 8 bits of the Vertical Top Border.
  766.          Bits 8-9 are in 3d6h index 59h bits 5-6.
  767. Note: used only in Flat panel modes when non-automatic
  768.       vertical centering is enabled.
  769.  
  770. 3d6h index 59h (R/W):  Graphics Mode 400                     (82c455/6/7 Only)
  771. bit 0-3  Number of scan lines between stretch/delete
  772.       4  Enable vertical Stretching if set
  773.       5  Enable vertical deletion if set
  774.       6  If set the value in bits 0-3 is incremented every other period.
  775. Note: This register is used if in a 400 line graphics mode.
  776.  
  777. 3d6h index 59h (R/W):  Vertical Line Insertion Register           (655x0 Only)
  778. bit 0-3  Vertical line Insertion Height.
  779.          Number of lines -1 to insert between text rows.
  780.     5-6  Bits 8-9 of the Vertical Top Border (3d6h index 58h).
  781. Note: This register is only used in Flat Panel text modes.
  782.  
  783. 3d6h index 5Ah (R/W):  Flat Panel Vertical Display Start_400 (82c455/6/7 Only)
  784. bit 0-7  For 400 line Flat Panel modes  these are the lower 8 bits of the
  785.          Vertical Display Start (in scanlines). The upper 2 bits are in the
  786.          Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 2-3.
  787.  
  788. 3d6h index 5Ah (R/W):  Vertical Line Replication Register.        (655x0 Only)
  789. bit 0-3  Vertical line Replication Height.
  790.          Number of lines-1 between replicated lines.
  791.          Double scanned lines are also counted.
  792. Note: This register is only used when in Flat Panel text modes
  793.       and Line Replication is enabled.
  794.  
  795. 3d6h index 5Bh (R/W):  Flat Panel Vertical Display End_400   (82c455/6/7 Only)
  796. bit 0-7  For 400 line Flat Panel modes these are the lower 8 bits of the
  797.          Vertical Display End (in scanlines). The upper 2 bits are in the
  798.          Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 6-7.
  799.  
  800. 3d6h index 5Bh (R/W):  Panel Power Sequencing Delay register      (65530 Only)
  801. bit 0-3  Panel Power Down sequencing Delay in 32ms counts. (0-480ms)
  802.     4-7  Panel Power Up Sequencing Delay in 4ms counts. (0-60ms)
  803. Note: This register is used only when the Panel power Sequencing feature is
  804.       enabled. Default to 81h for compatibility with 65520.
  805.  
  806. 3d6h index 5Ch (R/W):  Weight Clock Control Register A         (82c455/6 only)
  807. bit 0-5  This register is used in Flat Panel mode when bit 7 of the Panel
  808.          Format Register (3d6h index 50h) is set and bits 2-3 of the same
  809.          register is either 1 or 2.
  810.          The time from Hsync to the first pulse on the WGTCLK is this
  811.          value*4 dot clocks.  See also 3d6h index 5Dh and 6Ch.
  812.  
  813. 3d6h index 5Dh (R/W):  Weight Clock Control Register B         (82c455/6 only)
  814. bit 0-5  This register is used in Flat Panel mode when bit 7 of the Panel
  815.          Format Register (3d6h index 50h) is set and bits 2-3 of the same
  816.          register is either 1 or 2.
  817.          The time between WGTCLK pulses is this value*4 dot clocks.
  818.          See also 3d6h index 5Ch and 6Ch.
  819.  
  820. 3d6h index 5Eh (R/W):  ACDCLK Control Register        (82c455/6/7, 655x0 only)
  821. bit 0-6  ACDCLK Count. Number of Hsync pulses between changes in ACDCLK.
  822.       7  If set the ACDCLK phase inverts every frame, if clear the ACDCLK
  823.          changes phase when the number of Hsync pulses specified in
  824.          bits 0-6 have elapsed.
  825.  
  826. 3d6h index 5Fh (R/W):  Power Down Mode Refresh Register
  827.                                                       (82c455/6/7, 655x0 only)
  828. bit 0-7  (82c455/6/7) Sleep Mode Refresh Frequency.
  829.          A refresh will happen for every (4*this value)+8 dot clocks.
  830.     0-1  (655x0) Power Down Refresh Frequency.
  831.          Refresh happens every xx micro seconds:
  832.            0=16usek, 1=32 usek, 2=64 usek and 3=128 usek.
  833.  
  834. 3d6h index 60h (R/W):  Blink Rate Control             (82c455/6/7, 655x0 Only)
  835. bit 0-5  Blink Rate.
  836.          Character Blink Freq = Vertical sync Freq * (Blink rate+1)
  837.          Cursor blink freq = Character Blink Freq *2.
  838.     6-7  Blink Cycle  1=25%, 2=50%, 3=75%
  839.  
  840. 3d6h index 61h (R/W):  Smartmap Control                 (82c455/6, 655x0 Only)
  841. bit   0  If set enables Smartmap and bypasses internal color lookup table.
  842.     1-4  Threshold for (Foreground - Background) diff
  843.          if diff less than the threshold the foreground and
  844.          background colors will be spread (See 3d6h index 62h).
  845.       5  Smartmap Saturation value.
  846.          If set the result is calculated modulo 16,
  847.          if clear it is rounded to min. or max. values (0 and 0Fh).
  848.       6  (82c456, 655x0) Enhanced text if set
  849.          (reverses attributes 7h and Fh)
  850.       7  (655x0) Text Video Output Polarity (TVP) if set.
  851.          Only effective in Flat Panel modes.
  852.  
  853. 3d6h index 62h (R/W):  Smartmap Shift Parameter         (82c455/6, 655x0 Only)
  854. bit 0-3  Number of levels to shift foreground color
  855.          when too little difference (See 3d6h index 61h bit 1-4).
  856.     4-7  Number of levels to shift background color.
  857.  
  858. 3d6h index 63h  (R/W): Graphics Color Mapping Control          (82c455/6 Only)
  859. bit 0-3  Threshold color value for mono output.
  860.          All colors >= this value will be set to 1,
  861.          all lower to 0.
  862.       4  Use upper 4 bits of 256 color if set, lower if not.
  863.       5  Enable internal color lookup table if set
  864.       6  Write protect internal color look up table if set
  865.       7  Graphics output polarity
  866.  
  867. 3d6h index 63h  (R/W): Smartmap Color Mapping Control             (655x0 only)
  868. bit 0-5  Color Threshold. Used for mapping 6 bit color to 1 bit.
  869.          Color values greater than or equal than this value
  870.          are mapped to 1, and lower values are mapped to 0.
  871.       6  Must be set to 1.
  872.       7  Graphics Video Output Polarity
  873.          Inverted polarity if set, normal if clear.
  874.          Graphics video output only.
  875.  
  876. 3d6h index 64h  (R/W): Alternate Vertical Total       (82c455/6/7, 655x0 only)
  877. bit 0-7  Alternate Vertical Total
  878. Note: For Flat Panel modes this register replaces the Vertical Total Register
  879.       (3d4h index 6).
  880.  
  881. 3d6h index 65h  (R/W): Alternate Overflow             (82c455/6/7, 655x0 only)
  882. bit   0  Alternate Vertical Total bit 8
  883.       1  (455/6/7) Alternate Vertical Display End bit 8.
  884.          (655x0)   Alternate Vertical Panel Size bit 8.
  885.       2  Alternate Vertical Sync Start bit 8.
  886.       3  (655x0) Alternate Vertical Sync Start bit 10.
  887.       4  (655x0) Alternate Vertical Total bit 10.
  888.       5  Alternate Vertical Total bit 9
  889.       6  (455/6/7) Alternate Vertical Display End bit 9.
  890.          (655x0)   Alternate Vertical Panel Size bit 9.
  891.       7  Alternate Vertical Sync Start bit 9.
  892.  
  893. 3d6h index 66h  (R/W): Alternate Vertical Sync Start  (82c455/6/7, 655x0 only)
  894. bit 0-7  Alternate Vertical Sync Start
  895. Note: For Flat Panel modes this register replaces the Vertical
  896.       Sync Start Register (3d4h index 10h).
  897.  
  898. 3d6h index 67h  (R/W): Alternate Vertical Sync End    (82c455/6/7, 655x0 only)
  899. bit 0-3  Alternate Vertical Sync End
  900. Note: For Flat Panel modes this register replaces the Vertical
  901.       Sync End Register (3d4h index 11h).
  902.  
  903. 3d6h index 68h  (R/W): Alternate Vertical Display Enable     (82c455/6/7 only)
  904. bit 0-7  Alternate Vertical Display Enable
  905. Note: For Flat Panel modes this register replaces the Vertical Display Enable
  906.       Register (3d4h index 12h)
  907.  
  908. 3d6h index 69h  (R/W): Vertical Panel Size Register.              (655x0 only)
  909. bit 0-7  Vertical Panel Size. Number of scan lines per frame.
  910.  
  911. 3d6h index 69h  (R/W): Flat Panel Vertical Display Start_350 (82c455/6/7 only)
  912. bit 0-7  For 350 line Flat Panel modes these are the lower 8 bits of the
  913.          Vertical Display Start (in scanlines). The upper 2 bits are in the
  914.          Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 0-1.
  915.  
  916. 3d6h index 6Ah  (R/W): Flat Panel Vertical Display End_350   (82c455/6/7 only)
  917. bit 0-7  For 350 line Flat Panel modes these are the lower 8 bits of the
  918.          Vertical Display End (in scanlines). The upper 2 bits are in the
  919.          Flat Panel Vertical Overflow 2 Register (3d6h index 6Bh) bits 4-5.
  920.  
  921. 3d6h index 6Bh  (R/W): Flat Panel Vertical Overflow 2        (82c455/6/7 only)
  922. bit 0-1  Bits 8-9 of the Vertical Display Start_350 Register (3d6h index 69h)
  923.     2-3  Bits 8-9 of the Vertical Display Start_400 Register (3d6h index 5Ah)
  924.     4-5  Bits 8-9 of the Vertical Display End_350 Register (3d6h index 6Ah)
  925.     6-7  Bits 8-9 of the Vertical Display End_400 Register (3d6h index 5Bh)
  926.  
  927. 3d6h index 6Ch  (R/W): Weight Clock Control Register         (82c455/6/7 only)
  928. bit 0-5  Weight Clock Control Pulse Count.
  929.          Total number of pulses on the Weight Clock.
  930.          See Also 3d6h index 5Ch and 5Dh.
  931.  
  932. 3d6h index 6Ch  (R/w): Programmable Output Drive Register         (655x0 only)
  933. bit   0  Input Level Sense Selection Mode.
  934.          If set bit 1 is used to determine input threshold.
  935.          If clear chip detects VCC voltage internally.
  936.       1  Input Level Sense Selection Voltage.
  937.          If set VCC for internal logic is 3.3V, if clear it is 5V.
  938.       2  Flat Panel Interface Output Drive Select
  939.          If set Higher drive, if clear Lower drive.
  940.       3  Bus Interface Output Drive Select.
  941.          If set Higher drive, if clear Lower drive.
  942.       4  Memory Interface output Drive Select.
  943.          If set Higher drive, if clear Lower drive.
  944.  
  945. 3d6h index 6Dh  (R/W): FRC and Palette Control                 (82c456/7 Only)
  946. bit   3  Enable Frame Rate Control
  947.     4-5  Maximum number of grey levels.
  948.            0: 64 level FRC
  949.            1: 16 level FRC with dither for 256 color modes.
  950.            2: 64 level FRC with dither for low grey levels.
  951.            3: 16 level FRC only.
  952.     6-7  Usage of External Palette:
  953.            0: Bypass
  954.            1: Bypass for 16 color modes, use for 256 color.
  955.            2: Always use
  956.            3: 16 grays for 16 color modes, 64 for 256 color.
  957.  
  958. 3d6h index 6Eh (R/W):  Polynomial FRC Control           (82c456/7, 655x0 Only)
  959. bit 0-3  Polynomial N value for Frame Rate Control
  960.     4-7  Polynomial M value.
  961.  
  962. 3d6h index 6Fh (R/W):  Frame Buffer Control register              (655x0 only)
  963. bit   0  Frame Buffer Enable. External Frame Buffer enabled if set.
  964.       1  Frame Accelerator enabled if set.
  965.       2  Frame Buffer memory Type.
  966.          If set Frame Buffer consists of 256Kx4 VRAM.
  967.          If clear Frame Buffer consists of 64Kx4 VRAM
  968.     3-5  Frame Buffer Refresh Count.
  969.     6-7  Reserved. Must be set to 0.
  970. Note: This register effective in Flat Panel mode only.
  971.  
  972. 3d6h index 70h (R/W):  Setup/Disable Control Register.            (655x0 only)
  973. bit   7  3C3/46E8 Register Disabled if set.
  974.  
  975. 3d6h index 7Dh (R/W):  FP Compensation Diagnostic Register        (655x0 only)
  976. bit 0-7  Reserved. returns 0.
  977.  
  978. 3d6h index 7Eh (R/W):  CGA Color Select
  979.      This is a copy of the CGA Color Select Register at 3D9h.
  980.      The copy at 3D9h is only visible in CGA emulation mode.
  981.      This register is always visible.
  982.  
  983. 3d6h index 7Fh (R/W):  Diagnostic
  984. bit   0  if set 3-states pins: PALRD/, PALWR/, WR46E8/, HSYNC, VSYNC,
  985.          ACDCLK, BLANK/, P0-7, RDY, DATEN/ AND IRQ/.
  986.       1  If set 3-states pins: WE/, RAS/, CAS0/, CAS1/,
  987.          CAS2/, CAS3/, AA0-7 AND BA0-7.
  988.     2-5  Test Function Pins. Should be 0.
  989.       6  (655x0) Test Function Enabled if set.
  990.       7  (655x0) Special Test Function. Should be set to 0.
  991.  
  992. 3dAh (W):  Feature Control Register                                 (82c45x ?)
  993. bit 0-1  If 3C2h/3CCh bits 2-3 is 2, this field selects one of 4 clocks
  994. Note: This is an extension of a standard VGA register, see VGA.TXT for
  995.       other fields in this register. This register can be read at 3DAh
  996.  
  997. 46E8h (R/W):  Setup Control PC/AT Register
  998. bit 0-2  Reserved
  999.       3  Enables Adapter VGA if set
  1000.       4  Enters Setup Mode if set
  1001.     5-7  Reserved
  1002. Note: This is the same register as 94h.
  1003.  
  1004.  
  1005. Most every index of 3d6h is used by one or more Chips&Tech chip.
  1006.  
  1007.  
  1008. Bank Switching:
  1009.  
  1010. Bank switching is dependent on Chip version:
  1011.  
  1012.                               16 color modes       256 color modes
  1013.    Chip         #bank regs   #Banks Granularity   #banks Granularity
  1014.    82c451/5/6      1                                  4    64Kbytes
  1015.    82c452          2            64     4Kbytes       64    16Kbytes
  1016.    82c453/0 and
  1017.    F655xx          2           256     1Kbytes      256     4Kbytes
  1018.  
  1019.     For the 82c450,2,3 and F655xx the window to display memory can start on
  1020.     any boundary fitting the granularity of the chip/display mode. When using
  1021.     2 bank registers, the address range available to the adapter is split
  1022.     equally between the two bank registers. I.e. A000h-A7FFh uses one bank,
  1023.     and A800h-AFFFh the other. (Or A000h-AFFFh and B000h-BFFFh respectively if
  1024.     using the full 128 Kbytes range).
  1025.  
  1026.  
  1027.  
  1028.   ID Chips and Technologies Chip Set:
  1029.  
  1030.   vio($5F00);
  1031.   if rp.al=$5F then
  1032.     case rp.bl shr 4 of
  1033.       0:Chip&Tech 82c451 !!!
  1034.       1:Chip&Tech 82c452 !!!
  1035.       2:Chip&Tech 82c455 !!!
  1036.       3:Chip&Tech 82c453 !!!
  1037.       4:Chip&Tech 82c450 !!!
  1038.       5:Chip&Tech 82c456 !!!
  1039.       6:Chip&Tech 82c457 !!!
  1040.       7:Chip&Tech F65520 !!!
  1041.       8:Chip&Tech F65530 !!!
  1042.       9:Chip&Tech F65510 !!!
  1043.     end;
  1044.  
  1045.  
  1046.  
  1047.   Video Modes:
  1048.  
  1049.    20h G  640  480   16  PK4  64300
  1050.    22h G  800  600   16  PK4  64300
  1051.    24h G 1024  768   16  PK4  64300
  1052.    28h G 1280 1024   16  PK4  64300
  1053.    30h G  640  480  256  P8   64300
  1054.    32h G  800  600  256  P8   64300
  1055.    34h G 1024  768  256  P8   64300
  1056.    38h G 1280 1024  256  P8   64300
  1057.    40h G  640  480  32k  P15  64300
  1058.    41h G  640  480  64k  P16  64300
  1059.    42h G  800  600  32k  P15  64300
  1060.    43h G  800  600  64k  P16  64300
  1061.    44h G 1024  768  32k  P15  64300
  1062.    45h G 1024  768  64k  P16  64300
  1063.    50h G  640  480  16m  P24  64300
  1064.    60h T  132   25   16  (8x16)
  1065.    61h T  132   50   16  (8x8)
  1066.    6Ah G  800  600   16  PL4
  1067.    70h G  800  600   16  PL4
  1068.    71h G  960  720   16  PL4   Cardinal only!
  1069.    72h G 1024  768   16  PL4
  1070.    73h G 1280 1024   16  PL4   F655xx only
  1071.    74h G 1280  960   16  PL4   F655xx only
  1072.    75h G 1024  768   16  PL4   64300
  1073.    76h G 1280 1024   16  PL4   64300
  1074.    78h G  640  400  256  P8    Not documented/not all boards
  1075.    79h G  640  480  256  P8
  1076.    7Ah G  720  540  256  P8    Not documented/not all boards
  1077.    7Bh G  800  600  256  P8
  1078.    7Ch G  800  600  256  P8    (82c453,F655xx Only)
  1079.    7Eh G 1024  768  256  P8    (82c453,F655xx Only)
  1080.  
  1081.   Bios Extensions:
  1082. ----------105F00-----------------------------
  1083. INT 10 - Get Controller Information       (Chips and Technologies Super VGA)
  1084.         AX = 5F00h
  1085. Return: AL = 5F  If extended VGA control function supported
  1086.         BL = CHIP Type:
  1087.              Bits 4-7  Chip version:
  1088.                0: 82c451
  1089.                1: 82c452
  1090.                2: 82c455
  1091.                3: 82c453
  1092.                4: 82c450
  1093.                5: 82c456
  1094.                6: 82C457
  1095.                7: F65520
  1096.                8: F65530
  1097.              0Bh: 64300
  1098.              Bits 0-3:  Revision Number
  1099.         BH = Video Memory Size
  1100.                0:  256 Kbytes
  1101.                1:  512 Kbytes
  1102.                2:  1 Mbyte
  1103.                3:  2 Mbytes
  1104.         CX = Miscellaneous Information
  1105.              Bit 0  Dac Size. 0=6bit, 1=8bit
  1106.                  1  System Environment. 0=PC/AT, 1=PS/2
  1107.                  2  Extended text modes supported by BIOS
  1108.                  3  Reserved
  1109.                  4  Extended graphics modes supported by BIOS
  1110.                  5  Reserved
  1111.                  6  Graphics Cursor supported by BIOS
  1112.                  7  Anti Alias font supported by BIOS
  1113.                  8  Preprogrammed emulation supported by BIOS
  1114.                  9  Auto emulation supported by BIOS
  1115.                 10  Variable mode set at cold boot supported by BIOS
  1116.                 11  Variable mode set at warm boot supported by BIOS
  1117.                 12  Emulation mode set at cold boot supported by BIOS
  1118.                 13  Emulation mode set at warm boot supported by BIOS
  1119.              14-15  Reserved
  1120. ----------105F01-----------------------------
  1121. INT 10 - Set Emulation Mode               (Chips and Technologies Super VGA)
  1122.         AX = 5F01h
  1123.         BL = Operation Mode
  1124.                0-1 Reserved
  1125.                  2 Enable CGA Emulation if set
  1126.                  3 Enable MDA Emulation if set
  1127.                  4 Enable Hercules Emulation if set
  1128.                  5 Enable EGA Emulation if set
  1129.                  6 Enable VGA Emulation if set
  1130. Return: AL = 5Fh  If function supported
  1131.         AH = Return Status
  1132.                1 If Function Successful, 0 else
  1133. ----------105F02-----------------------------
  1134. INT 10 - Auto Emulation Control           (Chips and Technologies Super VGA)
  1135.         AX = 5F02h
  1136.         BL = Selection
  1137.                0= Enable Auto Emulation
  1138.                1= Disable Auto Emulation
  1139. Return: AL = 5Fh  If function supported
  1140.         AH = Return Status
  1141.                1 If Function Successful, 0 else
  1142. ----------105F03-----------------------------
  1143. INT 10 - Set Power-on Video Configuration (Chips and Technologies Super VGA)
  1144.         AX = 5F03h
  1145.         BL = Configuration
  1146.                0:  Set display mode as specified in the CX register
  1147.                    at power-up.
  1148.  
  1149.                    CL=Display Mode
  1150.                    CH=Bits 0-1 Scanlines
  1151.                                  0=200 Lines
  1152.                                  1=350 Lines
  1153.                                  2=400 Lines
  1154.                       Bit    7 Persistence
  1155.                                  0= Reset after next boot
  1156.                                  1= Set until changed
  1157.  
  1158.                1:  Set Emulation mode as specified in the CX register
  1159.                    at power-up.
  1160.  
  1161.                    CL=Emulation Mode (See 5F01h)
  1162.                    CH=Bit 7 Performance
  1163.                         0= Reset after next boot
  1164.                         1= Set until changed
  1165.  
  1166. Return: AL = 5Fh  If function supported
  1167.         AH = Return Status
  1168.                1 If Function Successful, 0 else
  1169. ----------105F90-----------------------------
  1170. INT 10 - Return Save/Restore buffer size  (Chips and Technologies Super VGA)
  1171.         AX = 5F90h
  1172.         CX = Mask State
  1173.              Bit 0  Save/Restore video hardware if set
  1174.                  1  Save/Restore BIOS data state if set
  1175.                  2  Save/Restore DAC state if set
  1176.                 15  Save/Restore type
  1177.                       0= Save/Restore All state information
  1178.                       1= Save/Restore super state information
  1179.  
  1180. Return: AL = 5Fh  If function supported
  1181.         BX = Number of 64byte blocks required
  1182. ----------105F91-----------------------------
  1183. INT 10 - Save State                       (Chips and Technologies Super VGA)
  1184.         AX = 5F91h
  1185.         CX = Mask State
  1186.              Bit 0  Save video hardware
  1187.                  1  Save BIOS data state
  1188.                  2  Save DAC state
  1189.                 15  Save type
  1190.                       0= Save All state information
  1191.                       1= Save super state information
  1192.         ES:BX -> Buffer to save in.
  1193. Return: AL = 5Fh  If function supported
  1194. ----------105F92-----------------------------
  1195. INT 10 - Restore State                    (Chips and Technologies Super VGA)
  1196.         AX = 5F92h
  1197.         CX = Mask State
  1198.              Bit 0  Restore video hardware
  1199.                  1  Restore BIOS data state
  1200.                  2  Restore DAC state
  1201.                 15  Restore type
  1202.                       0= Restore All state information
  1203.                       1= Restore super state information
  1204.         ES:BX -> Buffer to restore from.
  1205. Return: AL = 5Fh  If function supported
  1206.